Доброго времени суток!
Прошу помочь разобраться в некоторых нюансах написания программы для pCO. Постараюсь максимально разложить вопрос.
Имею небольшой опыт программирования контроллеров pCO3 и pCO5. Все проекты имели порядка 10-15 исполнительных механизмов, для этого вполне хватало дискретных выходов одного котроллера.
Сейчас мне необходимо написать программу для гораздо большего количества выходов (порядка 50). Использовать связку контроллер + пачка плат расширения не целесообразно как с финансовой так и практической стороны. Поэтому выбор пал на комбинацию из двух pCO5 Extra large (29 + 29 выходов) и одного дисплея pGD1.
Алгоритм управления оборудованием у меня почти готов, с этим проблем нет.
Вопрос связан с распределением программной части между контроллерами.
Подскажите как правильно поступать в подобной ситуации. Пока вижу 2 варианта:
вариант №1. Распределение выходов между контроллерами решается особой нумерацией этих выходов. В описании блока "Dout" говорится что нумерация дискретных выходов второго контроллера должна быть с приставкой +25. Тоесть, дискретный выход "NO1" второго контроллера должен быть под номером 26 и тд. Вот вроде бы и подсказка, подумал я, но, pCO5 extra large имеет 29 выходов. Что ж получается, 5 выходов на каждом контроллере выпадают с логики? Или тут нумерация сдвигается не на +25 а на +29? Проверить в симуляторе не могу, там симулируется работа только 1 контроллера.
Так как датчики подключаются только к первому контроллеру, это нужно оформить программно (разрешить опрос аналоговых входов только первому контроллеру, второму контроллеру передавать значения с датчиков через pLan links в networkeditor) - подсмотрел в одной из Demo_solution . Также поступить и с остальными входами, влияющими на работу алгоритма.
В данном варианте в каждый контроллер прошивается одинаковая программа, которую они синхронно обрабатывают (с учетом вышеописаных нюансов).
вариант №2. В рамках одной Solution создаю два разных проекта. В первом заложен алгоритм опроса датчиков\входов, а также основная часть всей программы. Во втором проекте почти пустая программа - чтение через pLan links переменных и передача их значений прямо на дискретные выходы. Грубо говоря, в этом варианте второй контроллер будет выполнять функцию платы расширения с доп выходами.
Какой из вышеописанных вариантов является рабочим и правильным?
Какие системные переменные нужно использовать для правильной установки связи между двумя контроллерами?
Оборудование заказано и будет через несколько недель, а чтобы времени не терять пытаюсь разобраться. Но так как это мой первый
опыт связки двух контроллеров в рамках одной промышленной установки, решил обратиться к более опытным автоматчикам, тоесть к Вам!